<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"
    />
    <title>单例模式-透明</title>
</head>

<body>
    <h2>书籍：《javascript设计模式与开发实践》</h2>
    <strong>单例模式的核心是确保只有一个实例，并提供全局访问</strong>

    <p>我们现在的目标是实现一个“透明”的单例类，用户从这个类中创建对象的时候，可以像使 用其他任何普通类一样。</p>
    <p>在下面的例子中，我们将使用 CreateDiv 单例类，它的作用是负责在页 面中创建唯一的 div 节点，代码如下：</p>
    <script type="text/javascript">
        var CreateDiv = (function () {
            var instance
            var CreateDiv = function (html) {
                if (!instance) {
                    this.html = html
                    this.init()
                    instance = this
                }
                return instance
            }
            CreateDiv.prototype.init = function(){
                var div = document.createElement('div')
                div.innerHTML = this.html
                document.body.appendChild(div)
            }
            return CreateDiv

        })()
        var a = new CreateDiv('sven1')
        var b = new CreateDiv('sven2')
        var b = new CreateDiv('sven3')
        console.log(a === b) // true
    </script>

</body>

</html>